package com.spring_mysql_redis.utils;

import com.spring_mysql_redis.model.ResultFormat;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.web.multipart.MultipartFile;

import javax.xml.ws.spi.http.HttpExchange;
import java.io.File;
import java.io.IOException;
import java.net.URI;
import java.util.UUID;
@Component
public class FilesUtils {

    @Autowired
    private RedisUtil redisUtil;

    public ResultFormat imgListPgSorts(MultipartFile[] files) {
        System.out.println(files.length);
        if (files.length>0){
            for (MultipartFile file:files){
                if (!file.isEmpty()){
                    // 获取上传的文件名
                    String fileName = file.getOriginalFilename();
                    // 获得文件后缀名例如.png
                    String lastName = fileName.substring(fileName.lastIndexOf("."));
                    // 生成新的文件名
                    String newFileName = UUID.randomUUID() + lastName;
                    // 将文件路径与新的文件名拼接起来, 在静态资源中配置路径
                    File newPath = new File("D:/root/opt/img/dynamic/",newFileName);
                    // 判断文件夹是否存在若不存在则逐级创建
                    if (!newPath.exists()) {
                        newPath.mkdirs();
                    }
                    try {
                        // 上传文件
                        file.transferTo(newPath);
                        // 将服务器
                        // ip地址 本地:http://localhost:8080/,局域网也可
                        // 静态资源的映射路径 /img/
                        // 文件名 newFileName
                        // 进行拼接,并保存至数据库中

                        String imgurl ="/img/" + newFileName;
                        return ResultUtil.success();
                    } catch (IOException e) {
                        e.printStackTrace();
                        return ResultUtil.error(100, "添加失败");
                    }
                }
            }
        }
        return ResultUtil.error(100, "添加失败");
    }
    public ResultFormat imgPgSorts(MultipartFile file, Integer id) {

        // 获取上传的文件名
        String fileName = file.getOriginalFilename();
        // 获得文件后缀名例如.png
        String lastName = fileName.substring(fileName.lastIndexOf("."));
        // 生成新的文件名
        String newFileName = UUID.randomUUID() + lastName;
        // 将文件路径与新的文件名拼接起来, 在静态资源中配置路径
        File newPath = new File("D:/root/opt/img/dynamic/",newFileName);
        // 判断文件夹是否存在若不存在则逐级创建
        if (!newPath.exists()) {
            newPath.mkdirs();
        }
        try {
            // 上传文件
            file.transferTo(newPath);
            // 将服务器
            // ip地址 本地:http://localhost:8080/,局域网也可
            // 静态资源的映射路径 /img/
            // 文件名 newFileName
            // 进行拼接,并保存至数据库中

            String imgUrl ="/img/" + newFileName;
//            redisUtil.lSet("imgUrl"+id,imgUrl);
            return ResultUtil.success(imgUrl);
        } catch (IOException e) {
            e.printStackTrace();
            return ResultUtil.error(100, "添加失败");
        }
    }
    public String iconPgSorts(MultipartFile file) {
        String fileName = file.getOriginalFilename();
        String lastName = fileName.substring(fileName.lastIndexOf("."));
        String newFileName = UUID.randomUUID() + lastName;
        File newPath = new File("D:/root/opt/img/dynamic/userIcon/",newFileName);
        if (!newPath.exists()) {
            newPath.mkdirs();
        }
        try {
            file.transferTo(newPath);
            HttpExchange request = null;
            String imgUrl ="/img/userIcon/" + newFileName;
            return imgUrl;
        } catch (IOException e) {
            e.printStackTrace();
            return "100";
        }
    }
    public String upFilesPgSorts(MultipartFile file) {
        String fileName = file.getOriginalFilename();
        String lastName = fileName.substring(fileName.lastIndexOf("."));
        String newFileName = UUID.randomUUID() + lastName;
        File newPath = new File("D:/root/opt/img/dynamic/msgFiles/",newFileName);
        if (!newPath.exists()) {
            newPath.mkdirs();
        }
        try {
            file.transferTo(newPath);
            String imgUrl ="/img/msgFiles/" + newFileName;
            return imgUrl;
        } catch (IOException e) {
            e.printStackTrace();
            return "100";
        }
    }
}
